import { AppServices } from "../Helpers/Services";
import { actionItems, ActionView, BindableObject, DynamicString, GridView, IconTextView, IValidable, IView, IViewContent, IViewContentHost, IViewContentProvider, StringUsage } from "../Lib/WebApp";
export class OperatorHomeContent extends BindableObject implements IViewContentProvider {
private _editor: IValidable & IView;
private _host: IViewContentHost;
constructor() {
super();
}
/****************************************/
getContentAsync(host: IViewContentHost) {
this._host = host;
let views: IView[] = [];
views.push(new GridView({
template: "ListViewInline",
itemsSource: actionItems([
AppServices.content.actionFor("venue-list"),
AppServices.content.actionFor("catalog-list"),
AppServices.content.actionFor("product-list"),
AppServices.content.actionFor("pay-desk"),
AppServices.content.actionFor("orders"),
AppServices.content.actionFor("event-list"),
AppServices.content.actionFor("book-list"),
AppServices.content.actionFor("print-table-codes")
]),
styles: ["action-grid"],
createItemView: item => new ActionView({
name: item.name,
executeAsync: item.executeAsync,
content: new IconTextView({
template: "IconTextViewInline",
icon: item.icon,
text: DynamicString.getValue(item.displayName, StringUsage.Action)
}),
tooltip: item.displayName
})
}));
return Promise.resolve({
views: views,
styles: ["vertical", "scroll", "fit-items-h", "main-content"],
title: this.info.displayName
} as IViewContent);
}
/****************************************/
readonly info = AppServices.content.get("operator-home");
}